package controllers;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import models.Fornecedor;
import models.Produto;

public class ControllerProduto extends Application {
	public static void Cadastrarproduto() throws SQLException {

		conectar();
		List<Fornecedor> list_fornecedor = new ArrayList<Fornecedor>();
		ResultSet result;

		try {
			result = comando
					.executeQuery("select nome_fornecedor from Potiguar.fornecedor");
			while (result.next()) {
				Fornecedor fornecedor = new Fornecedor();
				fornecedor.setNome_fornecedor(result
						.getString("nome_fornecedor"));
				list_fornecedor.add(fornecedor);

			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		render(list_fornecedor);
	}

	public static void doCadastrarProduto(Produto produto, Fornecedor fornecedor)
			throws SQLException {
		conectar();
		int temp = 00;
		ResultSet result;
		result = comando
				.executeQuery("select * from Potiguar.fornecedor WHERE nome_fornecedor= '"
						+ fornecedor.getNome_fornecedor() + "'");
		while (result.next()) {
			temp = result.getInt("id_fornecedor");
		}
		String insert_produto = "INSERT INTO Potiguar.produto (id_fornecedor,quantidade,nome_produto,tipo) VALUES("
				+ temp
				+ ","
				+ produto.getQuantidade()
				+ ",'"
				+ produto.getNome_produto()
				+ "','"
				+ produto.getTipo()
				+ "'"
				+ ")";

		try {
			comando.executeUpdate(insert_produto);
		} catch (SQLException e) {
			e.printStackTrace();
		}

		Cadastrarproduto();
	}

	public static void doEditarProduto(Produto produtoaux) throws SQLException {
		conectar();
		ResultSet result;
		Produto produto = new Produto();
		
		try {

			result = comando
					.executeQuery("select * from Potiguar.produto WHERE nome_produto='"
							+ produtoaux.getNome_produto() + "'");
			while (result.next()) {
				produto.setId_produto(result.getInt("id_produto"));
				produto.setNome_produto(result.getString("nome_produto"));
				produto.setQuantidade(result.getFloat("quantidade"));
				produto.setTipo(result.getString("tipo"));

			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		calledEditarProduto(produto);
	}

	public static void docalledEditarProduto(Produto produtoaux,
			Fornecedor fornecedoraux) throws SQLException {
		conectar();
	
		String string = new String();
		ResultSet result;
		int temp = 0;

		try {
			result = comando
					.executeQuery("select * from Potiguar.fornecedor WHERE nome_fornecedor= '"
							+ fornecedoraux.getNome_fornecedor() + "'");
			while (result.next()) {
				temp = result.getInt("id_fornecedor");
			}

			string = ("UPDATE Potiguar.Produto SET nome_produto='"
					+ produtoaux.getNome_produto() + "', quantidade="
					+ produtoaux.getQuantidade() + ",tipo='"
					+ produtoaux.getTipo() + "',id_fornecedor=" + temp
					+ " WHERE id_produto =" + produtoaux.getId_produto() + "");
			comando.executeUpdate(string);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		telaEditar();
	}

	public static void EditarProduto() throws SQLException {
		conectar();
		List<Produto> list_produto = new ArrayList<Produto>();
		ResultSet result;

		try {
			result = comando
					.executeQuery("select nome_produto from Potiguar.produto");
			while (result.next()) {
				Produto produto = new Produto();
				produto.setNome_produto(result.getString("nome_produto"));
				list_produto.add(produto);

			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		render(list_produto);
	}

	public static void calledEditarProduto(Produto produto) throws SQLException {
		conectar();
		ResultSet rs;
		List<Fornecedor> list_fornecedor = new ArrayList<Fornecedor>();
		try {
			rs = comando
					.executeQuery("select nome_fornecedor from Potiguar.fornecedor");
			while (rs.next()) {
				Fornecedor fornecedor = new Fornecedor();
				fornecedor.setNome_fornecedor(rs.getString("nome_fornecedor"));
				list_fornecedor.add(fornecedor);

			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		render(produto, list_fornecedor);
	}

	public static void doExcluirProduto(Produto produto) throws SQLException {
		conectar();

		String delete_produto = "DELETE FROM Potiguar.produto WHERE nome_produto="
				+ "'" + produto.getNome_produto() + "'";

		try {
			comando.executeUpdate(delete_produto);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		ExcluirProduto();
	}

	public static void ExcluirProduto() throws SQLException {
		conectar();
		List<Produto> list_produto = new ArrayList<Produto>();
		ResultSet result;

		try {
			result = comando
					.executeQuery("select nome_produto from Potiguar.produto");
			while (result.next()) {
				Produto produto = new Produto();
				produto.setNome_produto(result.getString("nome_produto"));
				list_produto.add(produto);

			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		render(list_produto);
	}

	public static void showEstoque() throws SQLException {

		conectar();
		List<Produto> list_produto = new ArrayList<Produto>();
		ResultSet result;

		try {
			result = comando.executeQuery("select * from Potiguar.produto");
			while (result.next()) {
				Produto produto = new Produto();
				produto.setNome_produto(result.getString("nome_produto"));
				produto.setQuantidade(result.getFloat("quantidade"));
				list_produto.add(produto);

			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		render(list_produto);
	}

}
